using System;

namespace codebase.UI
{
    public abstract class Renderer
    {
        public virtual int Width { get; set; }

        public virtual int Height { get; set; }

        public virtual int CharacterWidth { get; set; }

        public virtual int CharacterHeight { get; set; }

        public virtual void Clear()
        {
            throw new Exception("Clear() not implemented");
        }

        public virtual void DrawLine(int x1, int y1, int x2, int y2, int color)
        {
            throw new Exception("DrawLine() not implemented");
        }

        public virtual void DrawRectangle(int x1, int y1, int x2, int y2, int color)
        {
            throw new Exception("DrawRectangle() not implemented");
        }

        public virtual void DrawFilledRectangle(int x1, int y1, int x2, int y2, int color)
        {
            throw new Exception("DrawFilledRectangle() not implemented");
        }

        public virtual void DrawCircle(int x, int y, int radius, int color)
        {
            throw new Exception("DrawCircle() not implemented");
        }

        public virtual void DrawFilledCircle(int x, int y, int radius, int color)
        {
            throw new Exception("DrawFilledCircle() not implemented");
        }

        public virtual void DrawText(string text, int x, int y, bool transparent, int backcolor, int forecolor)
        {
            throw new Exception("DrawText() not implemented");
        }
    }
}
